<?php
class sis_anggota_keluar_model extends MY_Model {
	var $model = 'sis_anggota_keluar';
	
	function GetJSON()
	{
		$ls_sort = post('sort');
		if($ls_sort == 'nama_status'){ $ls_sort = 'A.ST_AKTIF'; }
		
		$ls_sql	= "	SELECT	H.ID_ANGGOTA_KELUAR, A.ID_ANGGOTA, A.ST_AKTIF, 
							TO_CHAR(H.TGL_PERMOHONAN,'DD/MM/YYYY') TGL_PERMOHONAN, 
							TO_CHAR(H.TGL_KELUAR,'DD/MM/YYYY') TGL_KELUAR, H.ALASAN_KELUAR,
							TO_CHAR(H.TGL_APPROVE,'DD/MM/YYYY') TGL_APPROVE,
							(CASE NVL(A.ST_AKTIF,'0') WHEN '0' THEN 'Daftar' WHEN '1' THEN 'Aktif' ELSE 'Non Aktif' END) NAMA_STATUS,
							A.KD_BANK, F.NAMA_BANK, A.NAMA_CABANG, A.NO_REKENING, A.PEMILIK_REKENING, 
							B.PERSON_ID, B.ID_KARYAWAN_PK, B.GENDER_ID, B.ID_AGAMA_PK, B.ID_JENJANG_PK, B.KD_KANTOR, B.FULL_NAME, B.MOTHER_NAME,
							B.IDENTITY_TYPE_CODE, B.IDENTITY_NUMBER, B.NIP, B.BIRTH_PLACE, TO_CHAR(B.BIRTH_DATE,'DD/MM/YYYY') BIRTH_DATE, B.EMAIL, B.PHONE, B.USER_ID, 
							C.KD_JENIS_ANGGOTA, C.NAMA_JENIS_ANGGOTA, 
							D.ADDRESS_TYPE_CODE, D.ADDRESS, D.RT, D.RW, D.VILLAGE, D.SUBDISTRICT, 
							D.CITY_CODE, D.PROVINCE_CODE, D.COUNTRY_CODE, D.ZIPCODE, E.GENDER_NAME,
							G.ID_PERUSAHAAN, G.KODE_PERUSAHAAN, G.NAMA_PERUSAHAAN,
							H.SIMPANAN_POKOK,
							H.SIMPANAN_WAJIB,
							H.SIMPANAN_SUKARELA,
							F_SIS_GET_VARIABEL_ANGGOTA(A.ID_ANGGOTA, 'PLAFOND') PLAFOND,
							(SELECT TO_CHAR(MIN(X.TGL_STATUS),'DD/MM/YYYY') TGL_STATUS FROM SIS_ANGGOTA_HISTORY X WHERE X.ID_ANGGOTA = A.ID_ANGGOTA AND X.KODE_STATUS_ANGGOTA = 'ST001') TGL_DAFTAR
					FROM	SIS_ANGGOTA A 
							LEFT JOIN SW_PERSON B ON A.PERSON_ID = B.PERSON_ID 
							LEFT JOIN SIS_SETUP_JENIS_ANGGOTA C ON A.KD_JENIS_ANGGOTA = C.KD_JENIS_ANGGOTA
							LEFT JOIN SW_PERSON_ADDRESS D ON B.PERSON_ID = D.PERSON_ID  AND D.ADDRESS_TYPE_CODE = 'ADR01' 
							LEFT JOIN SW_GENDER E ON B.GENDER_ID = E.GENDER_ID
							LEFT JOIN KEU_BANK F ON A.KD_BANK = F.KD_BANK
							LEFT JOIN SW_PERUSAHAAN G ON A.ID_PERUSAHAAN = G.ID_PERUSAHAAN
							JOIN SIS_ANGGOTA_KELUAR H ON A.ID_ANGGOTA = H.ID_ANGGOTA
					WHERE	A.DELETE_DATE IS NULL
							".(post('kd_jenis_anggota') != '' ? " AND A.KD_JENIS_ANGGOTA = '".post('kd_jenis_anggota')."' " : '')."
							".(post('st_aktif') != '' ? " AND A.ST_AKTIF = '".post('st_aktif')."' " : '')."
							".(get('st_aktif') != '' ? " AND A.ST_AKTIF = '".get('st_aktif')."' " : '')."
							AND UPPER(NVL(g.id_perusahaan,'')) LIKE '%".strtoupper(post('id_perusahaan'))."%'
							AND UPPER(NVL(g.kode_perusahaan,'')) LIKE '%".strtoupper(post('kode_perusahaan'))."%'
							AND UPPER(NVL(g.nama_perusahaan,'')) LIKE '%".strtoupper(post('nama_perusahaan'))."%'
							
							AND (UPPER(NVL(A.ID_ANGGOTA,'')) LIKE '%".strtoupper(post('keyword'))."%' 
							OR UPPER(NVL(C.NAMA_JENIS_ANGGOTA,'')) LIKE '%".strtoupper(post('keyword'))."%' 
							OR UPPER(NVL(B.FULL_NAME,'')) LIKE '%".strtoupper(post('keyword'))."%'
							OR UPPER(NVL(B.MOTHER_NAME,'')) LIKE '%".strtoupper(post('keyword'))."%'
							OR UPPER(NVL(B.IDENTITY_NUMBER,'')) LIKE '%".strtoupper(post('keyword'))."%') 
							
					ORDER BY ".($ls_sort=='' ? " NVL(A.ST_AKTIF,'0'), A.ID_ANGGOTA " : $ls_sort)." ".(post('order')=='' ? 'asc' : post('order'));
					
		return json_encode( $this->paging($ls_sql) );
	}
			
	function GetDetail($param=array())
	{
		$this->db->from('SIS_ANGGOTA_KELUAR');
		if(count($param) > 0){
			$this->db->where_in('SIS_ANGGOTA_KELUAR', $param);
		}
		$this->db->order_by('ID_ANGGOTA_KELUAR');
		$result = $this->db->get();
		if($result->num_rows() > 0){
			return $result->result_array();
		}else{
			return NULL;
		}
	}
	
	function Add($arr_data){
		$this->db->insert('SIS_ANGGOTA_KELUAR', $arr_data);
	}
	
	function Update($arr_data, $arr_rule){
		$this->db->update('SIS_ANGGOTA_KELUAR', $arr_data, $arr_rule);
	}
	
	function GetSingle($as_idanggotakeluar){
		$result = $this->db->get_where('SIS_ANGGOTA_KELUAR', array('SIS_ANGGOTA_KELUAR' => $as_idanggotakeluar));
		if($result->num_rows() == 1){
			return $result->row_array();
		}else{
			return NULL;
		}
	}
	
	function GetSingleView($as_idanggotakeluar)
	{
		$ls_sql	= "	SELECT	H.ID_ANGGOTA_KELUAR, A.ID_ANGGOTA, A.ST_AKTIF, 
							TO_CHAR(H.TGL_PERMOHONAN,'DD/MM/YYYY') TGL_PERMOHONAN, 
							TO_CHAR(H.TGL_KELUAR,'DD/MM/YYYY') TGL_KELUAR, H.ALASAN_KELUAR,
							TO_CHAR(H.TGL_APPROVE,'DD/MM/YYYY') TGL_APPROVE,
							(CASE NVL(A.ST_AKTIF,'0') WHEN '0' THEN 'Daftar' WHEN '1' THEN 'Aktif' ELSE 'Non Aktif' END) NAMA_STATUS,
							A.KD_BANK, F.NAMA_BANK, A.NAMA_CABANG, A.NO_REKENING, A.PEMILIK_REKENING, 
							B.PERSON_ID, B.ID_KARYAWAN_PK, B.GENDER_ID, B.ID_AGAMA_PK, B.ID_JENJANG_PK, B.KD_KANTOR, B.FULL_NAME, B.MOTHER_NAME,
							B.IDENTITY_TYPE_CODE, B.IDENTITY_NUMBER, B.NIP, B.BIRTH_PLACE, TO_CHAR(B.BIRTH_DATE,'DD/MM/YYYY') BIRTH_DATE, B.EMAIL, B.PHONE, B.USER_ID, 
							C.KD_JENIS_ANGGOTA, C.NAMA_JENIS_ANGGOTA, 
							D.ADDRESS_TYPE_CODE, D.ADDRESS, D.RT, D.RW, D.VILLAGE, D.SUBDISTRICT, 
							D.CITY_CODE, D.PROVINCE_CODE, D.COUNTRY_CODE, D.ZIPCODE, E.GENDER_NAME,
							G.ID_PERUSAHAAN, G.KODE_PERUSAHAAN, G.NAMA_PERUSAHAAN,
							H.SIMPANAN_POKOK,
							H.SIMPANAN_WAJIB,
							H.SIMPANAN_SUKARELA,
							F_SIS_GET_VARIABEL_ANGGOTA(A.ID_ANGGOTA, 'PLAFOND') PLAFOND,
							(SELECT TO_CHAR(MIN(X.TGL_STATUS),'DD/MM/YYYY') TGL_STATUS FROM SIS_ANGGOTA_HISTORY X WHERE X.ID_ANGGOTA = A.ID_ANGGOTA AND X.KODE_STATUS_ANGGOTA = 'ST001') TGL_DAFTAR
					FROM	SIS_ANGGOTA A 
							LEFT JOIN SW_PERSON B ON A.PERSON_ID = B.PERSON_ID 
							LEFT JOIN SIS_SETUP_JENIS_ANGGOTA C ON A.KD_JENIS_ANGGOTA = C.KD_JENIS_ANGGOTA
							LEFT JOIN SW_PERSON_ADDRESS D ON B.PERSON_ID = D.PERSON_ID  AND D.ADDRESS_TYPE_CODE = 'ADR01' 
							LEFT JOIN SW_GENDER E ON B.GENDER_ID = E.GENDER_ID
							LEFT JOIN KEU_BANK F ON A.KD_BANK = F.KD_BANK
							LEFT JOIN SW_PERUSAHAAN G ON A.ID_PERUSAHAAN = G.ID_PERUSAHAAN
							JOIN SIS_ANGGOTA_KELUAR H ON A.ID_ANGGOTA = H.ID_ANGGOTA
					WHERE	H.ID_ANGGOTA_KELUAR = '".$as_idanggotakeluar."'";

		$result = $this->db->query($ls_sql);
		if($result->num_rows() == 1){
			return $result->row_array();
		}else{
			return NULL;
		}
	}

	function DeleteSingle($arr_rule)
	{
		try {
			if(	intval($this->get_data("SELECT COUNT(1) FROM SIS_ANGGOTA_KELUAR WHERE ID_ANGGOTA_KELUAR = '".$arr_rule['id_anggota_keluar']."' AND NVL(ST_APPROVE,'0') <> '0'"))>0)
			{
				return $this->error_delete.' [id: '.$arr_rule['id_anggota_keluar']."]<br />";
			}else{
				$this->db->delete('SIS_ANGGOTA_KELUAR', array('ID_ANGGOTA_KELUAR' => $arr_rule['id_anggota_keluar']));
				return '';
			}
		} catch(Exception $e) {
			return $e->getMessage();
		}
	}
}
?>